@{
    Layout = null;

    string assemblyVersion = typeof(DynamicExpresso.Interpreter).Assembly.GetName().Version.ToString();
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Web Shell - Dynamic Expresso</title>
    <meta name="description" content="A simple shell for trying Dynamic Expresso in your browser." />
    <meta name="keywords" content="dynamic expresso" />

    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap.min.css")" type="text/css">
    <link rel="stylesheet" href="@Url.Content("~/Content/bootstrap-responsive.min.css")" type="text/css">
    <link rel="stylesheet" href="@Url.Content("~/Content/webshell.css")" type="text/css">
</head>
<body>

    <header>
        <div class="container">
            <h1>Dynamic Expresso Web Shell</h1>
            <p class="lead">
                <a href="https://github.com/dynamicexpresso/DynamicExpresso">Dynamic Expresso</a> is an expression interpreter for simple C# statements.
                <br />
                Try it now directly in your browser.
            </p>
        </div>
    </header>

    <div class="container">
        <div class="row">
            <div id="terminal">
                <p>Dynamic Expresso version: @assemblyVersion</p>
                @*<p>type "help" for help</p>*@

            </div>
        </div>

        <div class="row">
            <p>
                Dynamic Expresso understands a subset of C# syntax (numeric and string operators, comparison operators, typeof, new, primitive types, Math and Convert classes, ...). 
                It supports single statement expression only. See <a href="https://github.com/dynamicexpresso/DynamicExpresso">documentation</a> for more information.<br />
                In this example all the results are serialized using json to be more human readable.
            </p>
        </div>

        <div class="row">
            <div class="span6">
                <div class="">
                    <h3>Commands examples</h3>
                    <p>
                        Here some expressions that you can try:
                    </p>
                    <ul>
                        <li><code>5 + 2 * 8 / (80 + 9.9)</code></li>
                        <li><code>"Hello" + " " + "world!"</code></li>
                        <li><code>DateTime.Now.AddDays(30)</code></li>
                        <li><code>new DateTime(2020, 2, 13)</code></li>
                        <li><code>string.Format("My name is {0}. Today is {1}", "R2-D2", DateTime.Now.ToShortDateString())</code></li>
                        <li><code>Commands.Count</code></li>
                        <li><code>Commands.Clear()</code></li>
                        <li><code>Commands.GetLastCommands()</code></li>
                    </ul>

                    <p>
                        The <code>Commands</code> variable is just for demostration purpose.
                    </p>
                </div>
            </div>

            <div class="span6">
                <div class="">
                    <h3>credits</h3>
                    <p>
                        <small>
                        shell javascript code is based on the mongulator project (<a href="https://github.com/banker/mongulator">https://github.com/banker/mongulator</a>)<br />
                    Copyright (c) 2009 Kyle Banker
                        </small>
                    </p>
                </div>
            </div>
        </div>

    </div>

    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.9.0.min.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/webshell.js")"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            var deHandler = new DynamicExpressoHandler({ interpreterUrl: "@Url.Action("Eval", "Interpreter")" });
            var terminal = new ReadLine({
                htmlForInput: DefaultInputHtml,
                handler: deHandler,
                scoper: null
            });
        });
    </script>

</body>
</html>
